package drazing;

import java.io.Serializable;

/**
 * Clase para gestionar los settings iniciales del coche
 * @author xcubo
 */
public class Settings implements Serializable
{
    private String name;
    private String team;
    private int gear;
    private double charge;
    private boolean hard_tire;
    private double fuel;
    private int pot;
    private double fre;
    private boolean fs;
    private Tiempo best;

    public Settings()
    {
        name = "Unnamed";
        team = "Ferrari";
        pot = 675;
        gear = 0;
        charge = 0;
        hard_tire = false;
        fuel = 0;
        fre = 0.001;
        fs = true;
        best = new Tiempo(0,0,0,0);
    }
    /**
     * Pone el mejor tiempo
     * @param tmp
     */
    public void setTime (Tiempo tmp)
    {
        best = tmp;
    }
    /**
     * Obtiene el tiempo del jugador
     * @return Best time
     */
    public Tiempo getTime ()
    {
        return best;
    }
    /**
     * Pone el nombre del jugador
     * @param nm
     */
    public void setName (String nm)
    {
        name = nm;
    }
    /**
     * Obtiene el nombre del jugador
     * @return Player name
     */
    public String getName ()
    {
        return name;
    }
    /**
     * Pone el equipo 
     * @param equ
     */
    public void setTeam (String equ)
    {
        assert(equ.equals("Ferrari") || equ.equals("McLaren") || equ.equals("Renault"));
        team = equ;
    }
    /**
     *  Obtiene el equipo
     * @return team
     */
    public String getTeam ()
    {
        return team;
    }
    /**
     * Pone la relación de marchas
     * @param box
     */
    public void setGear (int box)
    {
        assert(box >= 0 && box <= 4);
        gear = box;
    }
    /**
     * Obtiene la relación de marchas
     * @return gear
     */
    public int getGear()
    {
        return gear;
    }
    /**
     * Pone la aerodinamica
     * @param box
     */
    public void setAero (double box)
    {
        charge = box;
    }
    /**
     * Obtiene la aerodinamica
     * @return carga
     */
    public double getAero()
    {
        return charge;
    }
    /**
     * Pone el tipo de neumaticos
     * @param box
     */
    public void setTire (boolean box)
    {
        hard_tire = box;
    }
    /**
     * Obtiene el tipo de neumaticos
     * @return hard_tire
     */
    public boolean getTire()
    {
        return hard_tire;
    }
    /**
     * Pone el carburante
     * @param box
     */
    public void setFuel (double box)
    {
        fuel = box;
    }
    /**
     * Obtiene el carburante
     * @return Cantidad de fuel restante
     */
    public double getFuel()
    {
        return fuel;
    }
    /**
     * Obtiene la potencia
     * @return pot
     */
    public int getPot()
    {
        return pot;
    }
    /**
     * Pone los frenos
     * @param box
     */
    public void setBrak (double box)
    {
        fre = box;
    }
    /**
     * Obtiene los frenos
     * @return fre;
     */
    public double getBrak()
    {
        return fre;
    }
    /**
     * Pone la pantalla completa
     * @param fs
     */
    public void setFSEM(boolean fs)
    {
        this.fs = fs;
    }
    /**
     * Obtiene si esta a pantalla completa
     * @return Si esta en modo FSEM o no
     */
    public boolean getFSEM()
    {
        return fs;
    }
}